home *** CD-ROM | disk | FTP | other *** search
- On 28-Kwi-99, Tomasz Rakowski wrote:
-
- > Wszystko gra, jesli title, item1, item2 i item3 sa (const char*)
- > albo wpisuje sie je do struktury jawnie jako stale ciagi znakow,
- > np. "Tytul" i kompiluje.
-
- > Pytanie: Jak stworzyc menu w ktorym ow ciag znakow bedzie (char*),
- > tzn. bede mial mozliwosc uzycia zwyklego wskaznika na string?
-
- Zwyczajnie wstawiasz wska¼nik do struktury:
-
- char *jaki¶_string;
-
- mymenu[2].nm_Label = jaki¶_string;
-
- > 2) Pobawmy sie IDCMP. Mamy wskazniki na 3 okna:
- > struct Window *win1, *win2, *win3;
- > W programie otwieramy np. okno 1. i 3., a win2 pozostaje NULL.
- > Pytanie: Czy mozna uzyc konstrukcji...
- > signal = Wait( win1->....->SigBit |
- > win2->....->SigBit |
- > win3->....->SigBit);
- > ... bez obawy o zwiechy?
-
- Nie. Zwróæ uwagê, ¿e odwo³ujesz siê do wska¼nika zerowego. To jest
- niedozwolone i wywo³a zwiechy. A poza tym ten kod jest b³êdny, bo
- OR-ujesz ze sob± numery bitów zamiast masek. Powinno byæ tak:
-
- signal = Wait ((1 << win1->...->mp_SigBit) | ... i tak dalej
-
- A je¿eli chcesz uwzglêdniæ mo¿liwo¶æ, ¿e win2 jest NULL u¿yj wyra¿enia
- warunkowego
-
- ... | (win2 ? (1 << win2->UserPort->mp_SigBit) : 0) | ...
-
- Je¿eli win2 = NULL, czyli okna nie ma, do maski sygna³ów OR-ujê zero,
- czyli po prostu nic siê nie zmienia.
-
- --
- Grzegorz Kraszewski (Krashan/BlaBla) - krashan@amiga.org.pl
- Druga Strona BlaBla - http://amiga.org.pl/~krashan
-
-
-
-
-